#include<iostream>
#include<stdio.h>
#include<math.h>
#define LEN sizeof(struct Node)
using namespace std;
typedef struct Node
{
int data;
struct Node *next;
}Node;
typedef Node *linklist;
void CreatNode (linklist &L,int n)
{
struct Node *p,*q;
L = (struct Node *)malloc(LEN);
p = L;
q = L;
for (int i = 1; i <= n; i++)
{
q = (struct Node*)malloc(LEN);
q->data = i;
p->next = q;
p = q;
}
q->next = L->next;
}
void NodeDelete(linklist &L,int n)
{
std::cout << "请输入游戏开始的位置:";
int s;
cin >> s;
std::cout << "请输入出局位置:";
int m;
cin >> m;
Node *p, *q, *r;
p= L;
q= L;
for (int i =0; i <s; i++)//find the start station
{
p = p->next;
}
int t = 1;
while (n>1)
{
for (int j = 0; j<m-1; j++)
{
q = p;
p = p->next;
}
if (p == L)
{
r = p;
L = p->next;
q->next = p->next;
p = p->next;
}
else
{
r = p;
q->next = p->next;
p = p->next;
}
std::cout << "第" << t << "个出局的位置是: " << r->data << endl;
t++;
n--;
}
std::cout << "第" << t << "个出局的位置是: " << p->data << endl;
}
int main()
{
int n;
Node *head;
std::cout << "请输入总人数:";
cin >> n;
CreatNode(head,n);
NodeDelete(head,n);
return 0;
}